package ar.edu.uade.centroDistribucion.controladores;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

import ar.edu.uade.centroDistribucion.Modelo.BusinessDelegate;
import ar.edu.uade.centroDistribucion.framework.BaseControlador;
import ar.edu.uade.centroDistribucion.framework.BaseVista;
import ar.edu.uade.centroDistribucion.herramientas.FileReader;
import ar.edu.uade.centroDistribucion.valueObjects.ArticuloVO;
import ar.edu.uade.centroDistribucion.valueObjects.SolDistVO;
import ar.edu.uade.centroDistribucion.valueObjects.TiendaVO;
import ar.edu.uade.centroDistribucion.valueObjects.VistaSolDistVO;
import ar.edu.uade.centroDistribucion.vista.VistaProcesarSolicitudDistribucion;

public class ControladorProcesarSolicitudDistribucion extends BaseControlador{

	public ControladorProcesarSolicitudDistribucion(
			BusinessDelegate businessDelegate, BaseVista vista) {
		super(businessDelegate, vista);
		// TODO Auto-generated constructor stub
	}
	
public void ProcesarSolDist(String urlXML){
		
		SolDistVO solDistVO;
		
		solDistVO = GenerarVO(urlXML);
		EnviarVO(solDistVO);
		
	}
	
	private SolDistVO GenerarVO(String urlXML){
		
		try {
			FileReader fileReader = new FileReader(urlXML);
			String strXML = fileReader.obtenerContenido();
			XStream xStream = new XStream(new DomDriver());
			 
			xStream.alias("SolDist",SolDistVO.class);
			xStream.alias("Tienda",TiendaVO.class);
			xStream.alias("Articulo",ArticuloVO.class);
			
			//Obtengo el Value Object desde el XML
			return (SolDistVO)xStream.fromXML(strXML);
			
			}catch (Exception e) {

				System.out.println(e.getMessage() + e.toString());	
				return null;
				}
	}
	
	private void EnviarVO(SolDistVO solDistVO){
		
		VistaSolDistVO vistaVO = this.businessDelegate.ProcesarSolicitudDistribucion(solDistVO);
		((VistaProcesarSolicitudDistribucion)this.getVista()).actualizar(vistaVO);
	}

}
